package com.example.annotation.genericity

import androidx.activity.ComponentActivity

/**
 * 泛型方法
 */
fun <T> funGenericity(t:T):T{
    return t
}

/**
 * 定义泛型接口
 */
interface IGenericity<T>{
    fun createT(): T
}

/**
 * 使用泛型抽象类
 */
class MyActivity: BaseActivity<GenericityChlid>() {
    override fun createT(): GenericityChlid {
        return GenericityChlid()
    }
}

/**
 * 定义泛型类
 * :用于限制泛型必须继承[Genericity]
 */
abstract class BaseActivity<T:Genericity>: ComponentActivity() {
    var mT:T = createT()

    /**
     * 定义泛型抽象方法
     */
    abstract fun createT(): T
}

/**
 * 泛型限制类
 */
open class Genericity()

/**
 * 泛型限制的子类，子类必须继承限制类才可以用
 */
class GenericityChlid: Genericity()



